const fs = require('fs');
const http = require('http');
const url = require('url');
const html = fs.readFileSync(__dirname + '/index.html');
// 引入代理中间件
const { createProxyMiddleware } = require("http-proxy-middleware")
// 引入配置文件
const config = require("../../zx.config.js")

const server = http.createServer((req, res) => {
    // 获取到所有的请求路径
    const { pathname } = url.parse(req.url)
    // 判断请求的路径是否是需要代理的地址
    const proxyKeys = Object.keys(config.server.proxy)
    // 如果需要代理，则设置代理
    let proxyPath = proxyKeys.find(key => pathname.startsWith(key))
    if (proxyPath) {
        // 设置代理
        const proxy = createProxyMiddleware(config.server.proxy[proxyPath])
        proxy(req, res)
        // 这里return，让代理服务器去处理后续的返回
        return
    }
    res.writeHead(200, { 'Content-Type': 'text/html' });
    res.end(html.toString());
})

server.listen(80, () => {
    console.log('server is running http://localhost');
})